/********************************************************************************
   Copyright 2011-2012 Leonidas Fegaras, University of Texas at Arlington
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
   File: mrql.lex
   Title: The MRQL scanner
   Programmer: Leonidas Fegaras, UTA
   Date: 10/18/11
********************************************************************************/
package hadoop.mrql;
import java_cup.runtime.Symbol;
import Gen.Tree;


public class MRQLLex implements java_cup.runtime.Scanner {
	private final int YY_BUFFER_SIZE = 512;
	private final int YY_F = -1;
	private final int YY_NO_STATE = -1;
	private final int YY_NOT_ACCEPT = 0;
	private final int YY_START = 1;
	private final int YY_END = 2;
	private final int YY_NO_ANCHOR = 4;
	private final int YY_BOL = 128;
	private final int YY_EOF = 129;

  static int prev_char_pos = -1;
  public static int[] nest = new int[1000];
  public static int nest_pos = 0;
  static String template = null;
  public static void reset () {
    nest_pos = 0;
    nest[0] = 0;
    prev_char_pos = -1;
  }
  public static void record_begin () {
    nest[++nest_pos] = 0;
  }
  public static void record_end () {
    nest_pos--;
  }
  public int line_pos () { return yyline+1; }
  public int char_pos () { return yychar-prev_char_pos; }
  public Symbol symbol ( int s ) {
    Tree.line_number = line_pos();
    Tree.position_number = char_pos();
    return new Symbol(s);
  }
  public Symbol symbol ( int s, Object o ) {
    Tree.line_number = line_pos();
    Tree.position_number = char_pos();
    return new Symbol(s,o);
  }
  public void error ( String msg ) {
    System.err.println("*** Scanner Error: " + msg + " (line: " + line_pos() + ", position: " + char_pos() + ")");
  }
  public String format ( String s ) {
    return s.replaceAll("\\\\t", "\t").replaceAll("\\\\n", "\n");
  }
	private java.io.BufferedReader yy_reader;
	private int yy_buffer_index;
	private int yy_buffer_read;
	private int yy_buffer_start;
	private int yy_buffer_end;
	private char yy_buffer[];
	private int yychar;
	private int yyline;
	private boolean yy_at_bol;
	private int yy_lexical_state;

	public MRQLLex (java.io.Reader reader) {
		this ();
		if (null == reader) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(reader);
	}

	public MRQLLex (java.io.InputStream instream) {
		this ();
		if (null == instream) {
			throw (new Error("Error: Bad input stream initializer."));
		}
		yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
	}

	private MRQLLex () {
		yy_buffer = new char[YY_BUFFER_SIZE];
		yy_buffer_read = 0;
		yy_buffer_index = 0;
		yy_buffer_start = 0;
		yy_buffer_end = 0;
		yychar = 0;
		yyline = 0;
		yy_at_bol = true;
		yy_lexical_state = YYINITIAL;
	}

	private boolean yy_eof_done = false;
	private final int TEMPLATE = 2;
	private final int YYINITIAL = 0;
	private final int COMMENT = 1;
	private final int yy_state_dtrans[] = {
		0,
		109,
		111
	};
	private void yybegin (int state) {
		yy_lexical_state = state;
	}
	private int yy_advance ()
		throws java.io.IOException {
		int next_read;
		int i;
		int j;

		if (yy_buffer_index < yy_buffer_read) {
			return yy_buffer[yy_buffer_index++];
		}

		if (0 != yy_buffer_start) {
			i = yy_buffer_start;
			j = 0;
			while (i < yy_buffer_read) {
				yy_buffer[j] = yy_buffer[i];
				++i;
				++j;
			}
			yy_buffer_end = yy_buffer_end - yy_buffer_start;
			yy_buffer_start = 0;
			yy_buffer_read = j;
			yy_buffer_index = j;
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}

		while (yy_buffer_index >= yy_buffer_read) {
			if (yy_buffer_index >= yy_buffer.length) {
				yy_buffer = yy_double(yy_buffer);
			}
			next_read = yy_reader.read(yy_buffer,
					yy_buffer_read,
					yy_buffer.length - yy_buffer_read);
			if (-1 == next_read) {
				return YY_EOF;
			}
			yy_buffer_read = yy_buffer_read + next_read;
		}
		return yy_buffer[yy_buffer_index++];
	}
	private void yy_move_end () {
		if (yy_buffer_end > yy_buffer_start &&
		    '\n' == yy_buffer[yy_buffer_end-1])
			yy_buffer_end--;
		if (yy_buffer_end > yy_buffer_start &&
		    '\r' == yy_buffer[yy_buffer_end-1])
			yy_buffer_end--;
	}
	private boolean yy_last_was_cr=false;
	private void yy_mark_start () {
		int i;
		for (i = yy_buffer_start; i < yy_buffer_index; ++i) {
			if ('\n' == yy_buffer[i] && !yy_last_was_cr) {
				++yyline;
			}
			if ('\r' == yy_buffer[i]) {
				++yyline;
				yy_last_was_cr=true;
			} else yy_last_was_cr=false;
		}
		yychar = yychar
			+ yy_buffer_index - yy_buffer_start;
		yy_buffer_start = yy_buffer_index;
	}
	private void yy_mark_end () {
		yy_buffer_end = yy_buffer_index;
	}
	private void yy_to_mark () {
		yy_buffer_index = yy_buffer_end;
		yy_at_bol = (yy_buffer_end > yy_buffer_start) &&
		            ('\r' == yy_buffer[yy_buffer_end-1] ||
		             '\n' == yy_buffer[yy_buffer_end-1] ||
		             2028/*LS*/ == yy_buffer[yy_buffer_end-1] ||
		             2029/*PS*/ == yy_buffer[yy_buffer_end-1]);
	}
	private java.lang.String yytext () {
		return (new java.lang.String(yy_buffer,
			yy_buffer_start,
			yy_buffer_end - yy_buffer_start));
	}
	private int yylength () {
		return yy_buffer_end - yy_buffer_start;
	}
	private char[] yy_double (char buf[]) {
		int i;
		char newbuf[];
		newbuf = new char[2*buf.length];
		for (i = 0; i < buf.length; ++i) {
			newbuf[i] = buf[i];
		}
		return newbuf;
	}
	private final int YY_E_INTERNAL = 0;
	private final int YY_E_MATCH = 1;
	private java.lang.String yy_error_string[] = {
		"Error: Internal error.\n",
		"Error: Unmatched input.\n"
	};
	private void yy_error (int code,boolean fatal) {
		java.lang.System.out.print(yy_error_string[code]);
		java.lang.System.out.flush();
		if (fatal) {
			throw new Error("Fatal Error.\n");
		}
	}
	private int[][] unpackFromString(int size1, int size2, String st) {
		int colonIndex = -1;
		String lengthString;
		int sequenceLength = 0;
		int sequenceInteger = 0;

		int commaIndex;
		String workString;

		int res[][] = new int[size1][size2];
		for (int i= 0; i < size1; i++) {
			for (int j= 0; j < size2; j++) {
				if (sequenceLength != 0) {
					res[i][j] = sequenceInteger;
					sequenceLength--;
					continue;
				}
				commaIndex = st.indexOf(',');
				workString = (commaIndex==-1) ? st :
					st.substring(0, commaIndex);
				st = st.substring(commaIndex+1);
				colonIndex = workString.indexOf(':');
				if (colonIndex == -1) {
					res[i][j]=Integer.parseInt(workString);
					continue;
				}
				lengthString =
					workString.substring(colonIndex+1);
				sequenceLength=Integer.parseInt(lengthString);
				workString=workString.substring(0,colonIndex);
				sequenceInteger=Integer.parseInt(workString);
				res[i][j] = sequenceInteger;
				sequenceLength--;
			}
		}
		return res;
	}
	private int yy_acpt[] = {
		/* 0 */ YY_NOT_ACCEPT,
		/* 1 */ YY_NO_ANCHOR,
		/* 2 */ YY_NO_ANCHOR,
		/* 3 */ YY_NO_ANCHOR,
		/* 4 */ YY_NO_ANCHOR,
		/* 5 */ YY_NO_ANCHOR,
		/* 6 */ YY_NO_ANCHOR,
		/* 7 */ YY_NO_ANCHOR,
		/* 8 */ YY_NO_ANCHOR,
		/* 9 */ YY_NO_ANCHOR,
		/* 10 */ YY_NO_ANCHOR,
		/* 11 */ YY_NO_ANCHOR,
		/* 12 */ YY_NO_ANCHOR,
		/* 13 */ YY_NO_ANCHOR,
		/* 14 */ YY_NO_ANCHOR,
		/* 15 */ YY_NO_ANCHOR,
		/* 16 */ YY_NO_ANCHOR,
		/* 17 */ YY_NO_ANCHOR,
		/* 18 */ YY_NO_ANCHOR,
		/* 19 */ YY_NO_ANCHOR,
		/* 20 */ YY_NO_ANCHOR,
		/* 21 */ YY_NO_ANCHOR,
		/* 22 */ YY_NO_ANCHOR,
		/* 23 */ YY_NO_ANCHOR,
		/* 24 */ YY_NO_ANCHOR,
		/* 25 */ YY_NO_ANCHOR,
		/* 26 */ YY_NO_ANCHOR,
		/* 27 */ YY_NO_ANCHOR,
		/* 28 */ YY_NO_ANCHOR,
		/* 29 */ YY_NO_ANCHOR,
		/* 30 */ YY_NO_ANCHOR,
		/* 31 */ YY_NO_ANCHOR,
		/* 32 */ YY_NO_ANCHOR,
		/* 33 */ YY_NO_ANCHOR,
		/* 34 */ YY_NO_ANCHOR,
		/* 35 */ YY_NO_ANCHOR,
		/* 36 */ YY_NO_ANCHOR,
		/* 37 */ YY_NO_ANCHOR,
		/* 38 */ YY_NO_ANCHOR,
		/* 39 */ YY_NO_ANCHOR,
		/* 40 */ YY_NO_ANCHOR,
		/* 41 */ YY_NO_ANCHOR,
		/* 42 */ YY_NO_ANCHOR,
		/* 43 */ YY_NO_ANCHOR,
		/* 44 */ YY_NO_ANCHOR,
		/* 45 */ YY_NO_ANCHOR,
		/* 46 */ YY_NO_ANCHOR,
		/* 47 */ YY_NO_ANCHOR,
		/* 48 */ YY_NO_ANCHOR,
		/* 49 */ YY_NO_ANCHOR,
		/* 50 */ YY_NO_ANCHOR,
		/* 51 */ YY_NO_ANCHOR,
		/* 52 */ YY_NO_ANCHOR,
		/* 53 */ YY_NO_ANCHOR,
		/* 54 */ YY_NO_ANCHOR,
		/* 55 */ YY_NO_ANCHOR,
		/* 56 */ YY_NO_ANCHOR,
		/* 57 */ YY_NO_ANCHOR,
		/* 58 */ YY_NO_ANCHOR,
		/* 59 */ YY_NO_ANCHOR,
		/* 60 */ YY_NO_ANCHOR,
		/* 61 */ YY_NO_ANCHOR,
		/* 62 */ YY_NO_ANCHOR,
		/* 63 */ YY_NO_ANCHOR,
		/* 64 */ YY_NO_ANCHOR,
		/* 65 */ YY_NO_ANCHOR,
		/* 66 */ YY_NO_ANCHOR,
		/* 67 */ YY_NO_ANCHOR,
		/* 68 */ YY_NO_ANCHOR,
		/* 69 */ YY_NO_ANCHOR,
		/* 70 */ YY_NO_ANCHOR,
		/* 71 */ YY_NO_ANCHOR,
		/* 72 */ YY_NO_ANCHOR,
		/* 73 */ YY_NO_ANCHOR,
		/* 74 */ YY_NO_ANCHOR,
		/* 75 */ YY_NO_ANCHOR,
		/* 76 */ YY_NO_ANCHOR,
		/* 77 */ YY_NO_ANCHOR,
		/* 78 */ YY_NO_ANCHOR,
		/* 79 */ YY_NO_ANCHOR,
		/* 80 */ YY_NO_ANCHOR,
		/* 81 */ YY_NO_ANCHOR,
		/* 82 */ YY_NO_ANCHOR,
		/* 83 */ YY_NO_ANCHOR,
		/* 84 */ YY_NO_ANCHOR,
		/* 85 */ YY_NO_ANCHOR,
		/* 86 */ YY_NO_ANCHOR,
		/* 87 */ YY_NO_ANCHOR,
		/* 88 */ YY_NO_ANCHOR,
		/* 89 */ YY_NOT_ACCEPT,
		/* 90 */ YY_NO_ANCHOR,
		/* 91 */ YY_NO_ANCHOR,
		/* 92 */ YY_NO_ANCHOR,
		/* 93 */ YY_NO_ANCHOR,
		/* 94 */ YY_NO_ANCHOR,
		/* 95 */ YY_NOT_ACCEPT,
		/* 96 */ YY_NO_ANCHOR,
		/* 97 */ YY_NO_ANCHOR,
		/* 98 */ YY_NO_ANCHOR,
		/* 99 */ YY_NOT_ACCEPT,
		/* 100 */ YY_NO_ANCHOR,
		/* 101 */ YY_NOT_ACCEPT,
		/* 102 */ YY_NO_ANCHOR,
		/* 103 */ YY_NOT_ACCEPT,
		/* 104 */ YY_NO_ANCHOR,
		/* 105 */ YY_NOT_ACCEPT,
		/* 106 */ YY_NO_ANCHOR,
		/* 107 */ YY_NOT_ACCEPT,
		/* 108 */ YY_NO_ANCHOR,
		/* 109 */ YY_NOT_ACCEPT,
		/* 110 */ YY_NO_ANCHOR,
		/* 111 */ YY_NOT_ACCEPT,
		/* 112 */ YY_NO_ANCHOR,
		/* 113 */ YY_NO_ANCHOR,
		/* 114 */ YY_NO_ANCHOR,
		/* 115 */ YY_NO_ANCHOR,
		/* 116 */ YY_NO_ANCHOR,
		/* 117 */ YY_NO_ANCHOR,
		/* 118 */ YY_NO_ANCHOR,
		/* 119 */ YY_NO_ANCHOR,
		/* 120 */ YY_NO_ANCHOR,
		/* 121 */ YY_NO_ANCHOR,
		/* 122 */ YY_NO_ANCHOR,
		/* 123 */ YY_NO_ANCHOR,
		/* 124 */ YY_NO_ANCHOR,
		/* 125 */ YY_NO_ANCHOR,
		/* 126 */ YY_NO_ANCHOR,
		/* 127 */ YY_NO_ANCHOR,
		/* 128 */ YY_NO_ANCHOR,
		/* 129 */ YY_NO_ANCHOR,
		/* 130 */ YY_NO_ANCHOR,
		/* 131 */ YY_NO_ANCHOR,
		/* 132 */ YY_NO_ANCHOR,
		/* 133 */ YY_NO_ANCHOR,
		/* 134 */ YY_NO_ANCHOR,
		/* 135 */ YY_NO_ANCHOR,
		/* 136 */ YY_NO_ANCHOR,
		/* 137 */ YY_NO_ANCHOR,
		/* 138 */ YY_NO_ANCHOR,
		/* 139 */ YY_NO_ANCHOR,
		/* 140 */ YY_NO_ANCHOR,
		/* 141 */ YY_NO_ANCHOR,
		/* 142 */ YY_NO_ANCHOR,
		/* 143 */ YY_NO_ANCHOR,
		/* 144 */ YY_NO_ANCHOR,
		/* 145 */ YY_NO_ANCHOR,
		/* 146 */ YY_NO_ANCHOR,
		/* 147 */ YY_NO_ANCHOR,
		/* 148 */ YY_NO_ANCHOR,
		/* 149 */ YY_NO_ANCHOR,
		/* 150 */ YY_NO_ANCHOR,
		/* 151 */ YY_NO_ANCHOR,
		/* 152 */ YY_NO_ANCHOR,
		/* 153 */ YY_NO_ANCHOR,
		/* 154 */ YY_NO_ANCHOR,
		/* 155 */ YY_NO_ANCHOR,
		/* 156 */ YY_NO_ANCHOR,
		/* 157 */ YY_NO_ANCHOR,
		/* 158 */ YY_NO_ANCHOR,
		/* 159 */ YY_NO_ANCHOR,
		/* 160 */ YY_NO_ANCHOR,
		/* 161 */ YY_NO_ANCHOR,
		/* 162 */ YY_NO_ANCHOR,
		/* 163 */ YY_NO_ANCHOR,
		/* 164 */ YY_NO_ANCHOR,
		/* 165 */ YY_NO_ANCHOR,
		/* 166 */ YY_NO_ANCHOR,
		/* 167 */ YY_NO_ANCHOR,
		/* 168 */ YY_NO_ANCHOR,
		/* 169 */ YY_NO_ANCHOR,
		/* 170 */ YY_NO_ANCHOR,
		/* 171 */ YY_NO_ANCHOR,
		/* 172 */ YY_NO_ANCHOR,
		/* 173 */ YY_NO_ANCHOR,
		/* 174 */ YY_NO_ANCHOR,
		/* 175 */ YY_NO_ANCHOR,
		/* 176 */ YY_NO_ANCHOR,
		/* 177 */ YY_NO_ANCHOR,
		/* 178 */ YY_NO_ANCHOR,
		/* 179 */ YY_NO_ANCHOR,
		/* 180 */ YY_NO_ANCHOR,
		/* 181 */ YY_NO_ANCHOR,
		/* 182 */ YY_NO_ANCHOR,
		/* 183 */ YY_NO_ANCHOR,
		/* 184 */ YY_NO_ANCHOR,
		/* 185 */ YY_NO_ANCHOR,
		/* 186 */ YY_NO_ANCHOR,
		/* 187 */ YY_NO_ANCHOR,
		/* 188 */ YY_NO_ANCHOR,
		/* 189 */ YY_NO_ANCHOR,
		/* 190 */ YY_NO_ANCHOR,
		/* 191 */ YY_NO_ANCHOR,
		/* 192 */ YY_NO_ANCHOR,
		/* 193 */ YY_NO_ANCHOR,
		/* 194 */ YY_NO_ANCHOR,
		/* 195 */ YY_NO_ANCHOR,
		/* 196 */ YY_NO_ANCHOR,
		/* 197 */ YY_NO_ANCHOR,
		/* 198 */ YY_NO_ANCHOR,
		/* 199 */ YY_NO_ANCHOR,
		/* 200 */ YY_NO_ANCHOR,
		/* 201 */ YY_NO_ANCHOR,
		/* 202 */ YY_NO_ANCHOR,
		/* 203 */ YY_NO_ANCHOR,
		/* 204 */ YY_NO_ANCHOR,
		/* 205 */ YY_NO_ANCHOR,
		/* 206 */ YY_NO_ANCHOR,
		/* 207 */ YY_NO_ANCHOR,
		/* 208 */ YY_NO_ANCHOR,
		/* 209 */ YY_NO_ANCHOR,
		/* 210 */ YY_NO_ANCHOR,
		/* 211 */ YY_NO_ANCHOR,
		/* 212 */ YY_NO_ANCHOR,
		/* 213 */ YY_NO_ANCHOR,
		/* 214 */ YY_NO_ANCHOR,
		/* 215 */ YY_NO_ANCHOR,
		/* 216 */ YY_NO_ANCHOR,
		/* 217 */ YY_NO_ANCHOR,
		/* 218 */ YY_NO_ANCHOR,
		/* 219 */ YY_NO_ANCHOR,
		/* 220 */ YY_NO_ANCHOR,
		/* 221 */ YY_NO_ANCHOR,
		/* 222 */ YY_NO_ANCHOR,
		/* 223 */ YY_NO_ANCHOR
	};
	private int yy_cmap[] = unpackFromString(1,130,
"51:9,49,50,51,49,52,51:18,49,36,53,44,51,32,51,54,24,25,29,28,41,4,2,30,1:1" +
"0,42,43,34,33,35,51,45,20,47,16,31,3,10,22,12,9,6:2,14,19,13,18,40,6,17,15," +
"11,38,21,46,39,48,6,5,37,23,51,7,51,20,47,16,31,3,10,22,12,9,6:2,14,19,13,1" +
"8,40,6,17,15,11,38,21,46,39,48,6,26,8,27,51:2,0:2")[0];

	private int yy_rmap[] = unpackFromString(1,224,
"0,1,2,1,3,1,4,1:6,5,1:2,6,1:2,7,8,1:3,9,1:5,10,11,12,13,1:6,10,1:2,14,1,10:" +
"6,1,10:28,1:9,15,16,17,18,19,20,21,22,23,24,25,26,27,28,17,29,23,30,18,31,3" +
"2,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,5" +
"7,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,8" +
"2,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,10" +
"5,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,10,122,12" +
"3,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,1" +
"42,143,144,145")[0];

	private int yy_nxt[][] = unpackFromString(146,55,
"1,2,3,4,5,6,199,7,8,90,208,210,212,141,142,214,215,216,96,143,100,199,217,9" +
",10,11,12,13,14,15,16,218,17,18,19,20,21,22,219,220,221,23,24,25,26,27,222," +
"102,199,28,29,7,29,91,97,-1:56,2,89,95,-1:52,199,-1,199,-1:2,199:2,-1,199:5" +
",144,199:8,-1:8,199,-1:6,199,145,199,-1:5,199:3,-1:9,99,-1:2,99,-1:2,99:14," +
"-1:8,99,-1:6,99:3,-1:5,99:3,-1:33,34,-1:56,35,101,-1:57,36,-1,37,-1:52,38,-" +
"1:54,39,-1:22,199,-1,199,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:" +
"3,-1:7,199,-1,199,-1:2,199:2,-1,199:2,209,199:4,201,199:6,-1:8,199,-1:6,199" +
":3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:14,-1:8,169,-1:6,199:3,-1:5" +
",199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:7,50,199:6,-1:8,199,-1:6,199:3,-1:" +
"5,199:3,-1:7,43,-1,95,-1:52,43,-1:54,199,-1,199,-1:2,199:2,-1,199,30,199:2," +
"31,199:5,146,199:3,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,103:52,41,103,-1,92," +
"-1:83,83,-1:47,87,-1:32,92,-1:2,107,-1:23,107,-1:27,199,-1,199,-1:2,199:2,-" +
"1,199:8,32,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,105:53,42,-1:26,88,-1:" +
"29,99,-1,99,-1:2,99:2,44,99:14,-1:8,99,-1:6,99:3,-1:5,99:3,-1:7,199,-1,199," +
"-1:2,199:2,-1,199:4,110,112,33,199:6,157,-1:8,199,-1:6,199:3,-1:5,199:3,-1:" +
"7,101:49,51,101:4,-1,199,-1,199,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1" +
":5,199:2,40,-1:7,199,-1,199,-1:2,199:2,-1,199:2,45,199:11,-1:8,199,-1:6,199" +
":3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:2,46,199:11,-1:8,199,-1:6,1" +
"99:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:14,-1:8,47,-1:6,199:3,-1:" +
"5,199:3,-1:6,1,80:28,93,80:19,81,82,80,82,80:2,-1,199,-1,199,-1:2,199:2,-1," +
"199:14,-1:8,48,-1:6,199:3,-1:5,199:3,-1:6,1,84:7,94,84:17,98,84:22,85,86,84" +
",86,84:2,-1,199,-1,199,-1:2,199:2,-1,199:5,49,199:8,-1:8,199,-1:6,199:3,-1:" +
"5,199:3,-1:7,199,-1,52,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3," +
"-1:7,199,-1,199,-1:2,199:2,-1,199:10,53,199:3,-1:8,199,-1:6,199:3,-1:5,199:" +
"3,-1:7,199,-1,199,-1:2,199:2,-1,199:4,54,199:9,-1:8,199,-1:6,199:3,-1:5,199" +
":3,-1:7,199,-1,55,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7," +
"199,-1,199,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:2,56,-1:5,199:3,-1:7,199," +
"-1,57,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,58,-1" +
":2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:" +
"2,-1,199:7,59,199:6,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199" +
":2,-1,199:11,60,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,1" +
"99:2,-1,199:2,61,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,62,-1:2," +
"199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-" +
"1,199:8,63,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2," +
"-1,199:14,-1:8,199,-1:6,199:2,64,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"99:4,65,199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1," +
"199:3,66,199:10,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,67,-1:2,199:2,-1" +
",199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:6," +
"68,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:2" +
",69,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199" +
":2,70,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"99:13,71,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:2" +
",72,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199" +
":2,73,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"99:8,74,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,75,-1:2,199:2,-1,1" +
"99:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:4,76" +
",199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:2,7" +
"7,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:2" +
",78,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199" +
":4,79,199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,19" +
"9:9,104,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,106,-1:2,199:2,-1," +
"152,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199" +
":9,108,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"99:6,113,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1" +
",203,199:6,206,199:6,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,19" +
"9:2,-1,199:14,-1:8,199,-1:6,199:2,202,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2" +
",-1,199:9,114,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199" +
":2,-1,199:4,166,199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,115,-1:2,1" +
"99:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1" +
",199:14,-1:8,199,-1:6,199:2,116,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,19" +
"9:12,204,199,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"99:10,167,199:3,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-" +
"1,199:5,211,199:8,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,117,-1:2,199:2" +
",-1,199:9,168,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199" +
":2,-1,199:10,118,199:3,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2," +
"199:2,-1,199:6,119,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:" +
"2,199:2,-1,199:13,205,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,1" +
"99:2,-1,199:9,170,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2" +
",199:2,-1,199:6,120,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1" +
":2,199:2,-1,199:6,171,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199," +
"-1:2,199:2,-1,199:2,121,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,1" +
"99,-1:2,199:2,-1,172,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199," +
"-1:2,199:2,-1,199:11,173,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,1" +
"99,-1:2,199:2,-1,199:8,174,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1" +
",175,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1" +
":2,199:2,-1,199:7,223,199:6,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199," +
"-1:2,199:2,-1,122,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:" +
"2,199:2,-1,199:8,123,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,124,-" +
"1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199" +
":2,-1,199:14,-1:8,199,-1:6,125,199:2,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2," +
"-1,199:2,185,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199" +
":2,-1,199:9,126,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,1" +
"99:2,-1,199:2,127,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:" +
"2,199:2,-1,199:6,186,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-" +
"1:2,199:2,-1,199:8,128,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199" +
",-1:2,199:2,-1,199:2,129,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1," +
"199,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:2,130,-1:5,199:3,-1:7,199,-1,199" +
",-1:2,199:2,-1,199:8,187,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,1" +
"99,-1:2,199:2,-1,199:14,-1:8,199,-1:6,188,199:2,-1:5,199:3,-1:7,199,-1,199," +
"-1:2,199:2,-1,199:8,131,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,19" +
"9,-1:2,199:2,-1,199:4,132,199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1," +
"199,-1:2,199:2,-1,199:7,133,199:6,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-" +
"1,199,-1:2,199:2,-1,199:11,134,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,19" +
"9,-1,189,-1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,19" +
"9,-1:2,199:2,-1,190,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,135,-" +
"1:2,199:2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199" +
":2,-1,199:6,191,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,1" +
"99:2,-1,199:14,-1:8,136,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1" +
",199:13,193,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,19" +
"9:4,194,199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,195,-1:2,199:2,-1," +
"199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:9,1" +
"37,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:1" +
"1,196,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,19" +
"9:7,138,199:6,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1," +
"199:7,139,199:6,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-" +
"1,199:2,197,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:" +
"2,-1,198,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-" +
"1,199:9,140,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2" +
",-1,199:14,-1:8,199,-1:6,199:2,213,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1" +
",199:5,179,199:8,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2," +
"-1,199:9,180,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:" +
"2,-1,199:6,176,199:7,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,19" +
"9:2,-1,181,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2" +
",-1,199:8,184,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,177,-1:2,199" +
":2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"92,199:13,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:" +
"8,147,199:5,-1:8,199,-1:6,148,199:2,-1:5,199:3,-1:7,199,-1,178,-1:2,199:2,-" +
"1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:3" +
",149,199:10,-1:8,199,-1:6,199:3,-1:5,199:2,150,-1:7,199,-1,182,-1:2,199:2,-" +
"1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,199:1" +
"1,151,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,183,-1:2,199:2,-1,19" +
"9:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,153,-1:2,199:2,-1,199:2,154" +
",199:6,155,199:4,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2," +
"-1,199:11,156,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,200,-1:2,199" +
":2,-1,199:14,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,199:2,-1,1" +
"99:8,158,199:5,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,159,-1:2,199:2,-1" +
",160,199:10,161,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2,1" +
"99:2,-1,199:4,162,199:9,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2" +
",199:2,-1,199:14,-1:8,199,-1:6,199:2,163,-1:5,199:3,-1:7,199,-1,199,-1:2,19" +
"9:2,-1,199:11,164,199:2,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-1:2" +
",199:2,-1,199:3,165,199:10,-1:8,199,-1:6,199:3,-1:5,199:3,-1:7,199,-1,199,-" +
"1:2,199:2,-1,199:2,207,199:11,-1:8,199,-1:6,199:3,-1:5,199:3,-1:6");

	public java_cup.runtime.Symbol next_token ()
		throws java.io.IOException {
		int yy_lookahead;
		int yy_anchor = YY_NO_ANCHOR;
		int yy_state = yy_state_dtrans[yy_lexical_state];
		int yy_next_state = YY_NO_STATE;
		int yy_last_accept_state = YY_NO_STATE;
		boolean yy_initial = true;
		int yy_this_accept;

		yy_mark_start();
		yy_this_accept = yy_acpt[yy_state];
		if (YY_NOT_ACCEPT != yy_this_accept) {
			yy_last_accept_state = yy_state;
			yy_mark_end();
		}
		while (true) {
			if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL;
			else yy_lookahead = yy_advance();
			yy_next_state = YY_F;
			yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
			if (YY_EOF == yy_lookahead && true == yy_initial) {

  return symbol(sym.EOF);
			}
			if (YY_F != yy_next_state) {
				yy_state = yy_next_state;
				yy_initial = false;
				yy_this_accept = yy_acpt[yy_state];
				if (YY_NOT_ACCEPT != yy_this_accept) {
					yy_last_accept_state = yy_state;
					yy_mark_end();
				}
			}
			else {
				if (YY_NO_STATE == yy_last_accept_state) {
					throw (new Error("Lexical Error: Unmatched Input."));
				}
				else {
					yy_anchor = yy_acpt[yy_last_accept_state];
					if (0 != (YY_END & yy_anchor)) {
						yy_move_end();
					}
					yy_to_mark();
					switch (yy_last_accept_state) {
					case 1:
						
					case -2:
						break;
					case 2:
						{ return symbol(sym.Integer,new Long(yytext())); }
					case -3:
						break;
					case 3:
						{ return symbol(sym.DOT); }
					case -4:
						break;
					case 4:
						{ return symbol(sym.Variable,yytext()); }
					case -5:
						break;
					case 5:
						{ return symbol(sym.MINUS); }
					case -6:
						break;
					case 6:
						{ nest[nest_pos]++; return symbol(sym.LB); }
					case -7:
						break;
					case 7:
						{ error("Illegal character: "+yytext()); }
					case -8:
						break;
					case 8:
						{ return symbol(sym.SEP); }
					case -9:
						break;
					case 9:
						{ nest[nest_pos]--; return symbol(sym.RB); }
					case -10:
						break;
					case 10:
						{ nest[nest_pos]++; return symbol(sym.LP); }
					case -11:
						break;
					case 11:
						{ nest[nest_pos]--; return symbol(sym.RP); }
					case -12:
						break;
					case 12:
						{ nest[nest_pos]++; return symbol(sym.LSB); }
					case -13:
						break;
					case 13:
						{ nest[nest_pos]--; return symbol(sym.RSB); }
					case -14:
						break;
					case 14:
						{ return symbol(sym.PLUS); }
					case -15:
						break;
					case 15:
						{ return symbol(sym.TIMES); }
					case -16:
						break;
					case 16:
						{ return symbol(sym.DIV); }
					case -17:
						break;
					case 17:
						{ return symbol(sym.MOD); }
					case -18:
						break;
					case 18:
						{ return symbol(sym.EQ); }
					case -19:
						break;
					case 19:
						{ return symbol(sym.LT); }
					case -20:
						break;
					case 20:
						{ return (nest_pos > 0 && nest[nest_pos] == 0) ? symbol(sym.GTR) : symbol(sym.GT); }
					case -21:
						break;
					case 21:
						{ return symbol(sym.EXCLAMATION); }
					case -22:
						break;
					case 22:
						{ return symbol(sym.BSLASH); }
					case -23:
						break;
					case 23:
						{ return symbol(sym.COMMA); }
					case -24:
						break;
					case 24:
						{ return symbol(sym.COLON); }
					case -25:
						break;
					case 25:
						{ return symbol(sym.SEMI); }
					case -26:
						break;
					case 26:
						{ return symbol(sym.SHARP); }
					case -27:
						break;
					case 27:
						{ return symbol(sym.ATSYM); }
					case -28:
						break;
					case 28:
						{ }
					case -29:
						break;
					case 29:
						{ prev_char_pos = yychar; }
					case -30:
						break;
					case 30:
						{ return symbol(sym.IF); }
					case -31:
						break;
					case 31:
						{ return symbol(sym.IN); }
					case -32:
						break;
					case 32:
						{ return symbol(sym.OR); }
					case -33:
						break;
					case 33:
						{ return symbol(sym.AS); }
					case -34:
						break;
					case 34:
						{ nest[nest_pos]--; if (nest_pos > 0 && nest[nest_pos] == 0) { record_end(); yybegin(TEMPLATE); } else return symbol(sym.RSB); }
					case -35:
						break;
					case 35:
						{ yybegin(COMMENT); }
					case -36:
						break;
					case 36:
						{ return symbol(sym.LEQ); }
					case -37:
						break;
					case 37:
						{ return symbol(sym.NEQ); }
					case -38:
						break;
					case 38:
						{ return symbol(sym.GEQ); }
					case -39:
						break;
					case 39:
						{ return symbol(sym.ASSIGN); }
					case -40:
						break;
					case 40:
						{ return symbol(sym.BY); }
					case -41:
						break;
					case 41:
						{ return symbol(sym.String,format(yytext().substring(1,yytext().length()-1))); }
					case -42:
						break;
					case 42:
						{ return symbol(sym.String,format(yytext().substring(1,yytext().length()-1))); }
					case -43:
						break;
					case 43:
						{ return symbol(sym.Double,new Double(yytext())); }
					case -44:
						break;
					case 44:
						{ yybegin(TEMPLATE); template = ""; return symbol(sym.START_TEMPLATE,yytext()); }
					case -45:
						break;
					case 45:
						{ return symbol(sym.NOT); }
					case -46:
						break;
					case 46:
						{ return symbol(sym.LET); }
					case -47:
						break;
					case 47:
						{ return symbol(sym.MOD); }
					case -48:
						break;
					case 48:
						{ return symbol(sym.AND); }
					case -49:
						break;
					case 49:
						{ return symbol(sym.ALL); }
					case -50:
						break;
					case 50:
						{ return symbol(sym.ASCENDING); }
					case -51:
						break;
					case 51:
						{ prev_char_pos = yychar; }
					case -52:
						break;
					case 52:
						{ return symbol(sym.ELSE); }
					case -53:
						break;
					case 53:
						{ return symbol(sym.FROM); }
					case -54:
						break;
					case 54:
						{ return symbol(sym.THEN); }
					case -55:
						break;
					case 55:
						{ return symbol(sym.TYPE); }
					case -56:
						break;
					case 56:
						{ return symbol(sym.STEP); }
					case -57:
						break;
					case 57:
						{ return symbol(sym.SOME); }
					case -58:
						break;
					case 58:
						{ return symbol(sym.CASE); }
					case -59:
						break;
					case 59:
						{ return symbol(sym.DESCENDING); }
					case -60:
						break;
					case 60:
						{ return symbol(sym.DATA); }
					case -61:
						break;
					case 61:
						{ return symbol(sym.LIMIT); }
					case -62:
						break;
					case 62:
						{ return symbol(sym.STORE); }
					case -63:
						break;
					case 63:
						{ return symbol(sym.ORDER); }
					case -64:
						break;
					case 64:
						{ return symbol(sym.GROUP); }
					case -65:
						break;
					case 65:
						{ return symbol(sym.UNION); }
					case -66:
						break;
					case 66:
						{ return symbol(sym.XPATH); }
					case -67:
						break;
					case 67:
						{ return symbol(sym.WHERE); }
					case -68:
						break;
					case 68:
						{ return symbol(sym.EXISTS); }
					case -69:
						break;
					case 69:
						{ return symbol(sym.EXCEPT); }
					case -70:
						break;
					case 70:
						{ return symbol(sym.IMPORT); }
					case -71:
						break;
					case 71:
						{ return symbol(sym.HAVING); }
					case -72:
						break;
					case 72:
						{ return symbol(sym.SELECT); }
					case -73:
						break;
					case 73:
						{ return symbol(sym.REPEAT); }
					case -74:
						break;
					case 74:
						{ return symbol(sym.PARSER); }
					case -75:
						break;
					case 75:
						{ return symbol(sym.INCLUDE); }
					case -76:
						break;
					case 76:
						{ return symbol(sym.FUNCTION); }
					case -77:
						break;
					case 77:
						{ return symbol(sym.DISTINCT); }
					case -78:
						break;
					case 78:
						{ return symbol(sym.INTERSECT); }
					case -79:
						break;
					case 79:
						{ return symbol(sym.AGGREGATION); }
					case -80:
						break;
					case 80:
						{ }
					case -81:
						break;
					case 81:
						{ }
					case -82:
						break;
					case 82:
						{ prev_char_pos = yychar; }
					case -83:
						break;
					case 83:
						{ yybegin(YYINITIAL); }
					case -84:
						break;
					case 84:
						{ template += yytext(); }
					case -85:
						break;
					case 85:
						{ template += yytext(); }
					case -86:
						break;
					case 86:
						{ template += yytext(); prev_char_pos = yychar; }
					case -87:
						break;
					case 87:
						{ yybegin(YYINITIAL); String s = template; template = ""; return symbol(sym.END_TEMPLATE,s); }
					case -88:
						break;
					case 88:
						{ yybegin(YYINITIAL); record_begin(); nest[nest_pos]++; String s = template; template = ""; return symbol(sym.TEXT,s); }
					case -89:
						break;
					case 90:
						{ return symbol(sym.Variable,yytext()); }
					case -90:
						break;
					case 91:
						{ error("Illegal character: "+yytext()); }
					case -91:
						break;
					case 92:
						{ return symbol(sym.Double,new Double(yytext())); }
					case -92:
						break;
					case 93:
						{ }
					case -93:
						break;
					case 94:
						{ template += yytext(); }
					case -94:
						break;
					case 96:
						{ return symbol(sym.Variable,yytext()); }
					case -95:
						break;
					case 97:
						{ error("Illegal character: "+yytext()); }
					case -96:
						break;
					case 98:
						{ template += yytext(); }
					case -97:
						break;
					case 100:
						{ return symbol(sym.Variable,yytext()); }
					case -98:
						break;
					case 102:
						{ return symbol(sym.Variable,yytext()); }
					case -99:
						break;
					case 104:
						{ return symbol(sym.Variable,yytext()); }
					case -100:
						break;
					case 106:
						{ return symbol(sym.Variable,yytext()); }
					case -101:
						break;
					case 108:
						{ return symbol(sym.Variable,yytext()); }
					case -102:
						break;
					case 110:
						{ return symbol(sym.Variable,yytext()); }
					case -103:
						break;
					case 112:
						{ return symbol(sym.Variable,yytext()); }
					case -104:
						break;
					case 113:
						{ return symbol(sym.Variable,yytext()); }
					case -105:
						break;
					case 114:
						{ return symbol(sym.Variable,yytext()); }
					case -106:
						break;
					case 115:
						{ return symbol(sym.Variable,yytext()); }
					case -107:
						break;
					case 116:
						{ return symbol(sym.Variable,yytext()); }
					case -108:
						break;
					case 117:
						{ return symbol(sym.Variable,yytext()); }
					case -109:
						break;
					case 118:
						{ return symbol(sym.Variable,yytext()); }
					case -110:
						break;
					case 119:
						{ return symbol(sym.Variable,yytext()); }
					case -111:
						break;
					case 120:
						{ return symbol(sym.Variable,yytext()); }
					case -112:
						break;
					case 121:
						{ return symbol(sym.Variable,yytext()); }
					case -113:
						break;
					case 122:
						{ return symbol(sym.Variable,yytext()); }
					case -114:
						break;
					case 123:
						{ return symbol(sym.Variable,yytext()); }
					case -115:
						break;
					case 124:
						{ return symbol(sym.Variable,yytext()); }
					case -116:
						break;
					case 125:
						{ return symbol(sym.Variable,yytext()); }
					case -117:
						break;
					case 126:
						{ return symbol(sym.Variable,yytext()); }
					case -118:
						break;
					case 127:
						{ return symbol(sym.Variable,yytext()); }
					case -119:
						break;
					case 128:
						{ return symbol(sym.Variable,yytext()); }
					case -120:
						break;
					case 129:
						{ return symbol(sym.Variable,yytext()); }
					case -121:
						break;
					case 130:
						{ return symbol(sym.Variable,yytext()); }
					case -122:
						break;
					case 131:
						{ return symbol(sym.Variable,yytext()); }
					case -123:
						break;
					case 132:
						{ return symbol(sym.Variable,yytext()); }
					case -124:
						break;
					case 133:
						{ return symbol(sym.Variable,yytext()); }
					case -125:
						break;
					case 134:
						{ return symbol(sym.Variable,yytext()); }
					case -126:
						break;
					case 135:
						{ return symbol(sym.Variable,yytext()); }
					case -127:
						break;
					case 136:
						{ return symbol(sym.Variable,yytext()); }
					case -128:
						break;
					case 137:
						{ return symbol(sym.Variable,yytext()); }
					case -129:
						break;
					case 138:
						{ return symbol(sym.Variable,yytext()); }
					case -130:
						break;
					case 139:
						{ return symbol(sym.Variable,yytext()); }
					case -131:
						break;
					case 140:
						{ return symbol(sym.Variable,yytext()); }
					case -132:
						break;
					case 141:
						{ return symbol(sym.Variable,yytext()); }
					case -133:
						break;
					case 142:
						{ return symbol(sym.Variable,yytext()); }
					case -134:
						break;
					case 143:
						{ return symbol(sym.Variable,yytext()); }
					case -135:
						break;
					case 144:
						{ return symbol(sym.Variable,yytext()); }
					case -136:
						break;
					case 145:
						{ return symbol(sym.Variable,yytext()); }
					case -137:
						break;
					case 146:
						{ return symbol(sym.Variable,yytext()); }
					case -138:
						break;
					case 147:
						{ return symbol(sym.Variable,yytext()); }
					case -139:
						break;
					case 148:
						{ return symbol(sym.Variable,yytext()); }
					case -140:
						break;
					case 149:
						{ return symbol(sym.Variable,yytext()); }
					case -141:
						break;
					case 150:
						{ return symbol(sym.Variable,yytext()); }
					case -142:
						break;
					case 151:
						{ return symbol(sym.Variable,yytext()); }
					case -143:
						break;
					case 152:
						{ return symbol(sym.Variable,yytext()); }
					case -144:
						break;
					case 153:
						{ return symbol(sym.Variable,yytext()); }
					case -145:
						break;
					case 154:
						{ return symbol(sym.Variable,yytext()); }
					case -146:
						break;
					case 155:
						{ return symbol(sym.Variable,yytext()); }
					case -147:
						break;
					case 156:
						{ return symbol(sym.Variable,yytext()); }
					case -148:
						break;
					case 157:
						{ return symbol(sym.Variable,yytext()); }
					case -149:
						break;
					case 158:
						{ return symbol(sym.Variable,yytext()); }
					case -150:
						break;
					case 159:
						{ return symbol(sym.Variable,yytext()); }
					case -151:
						break;
					case 160:
						{ return symbol(sym.Variable,yytext()); }
					case -152:
						break;
					case 161:
						{ return symbol(sym.Variable,yytext()); }
					case -153:
						break;
					case 162:
						{ return symbol(sym.Variable,yytext()); }
					case -154:
						break;
					case 163:
						{ return symbol(sym.Variable,yytext()); }
					case -155:
						break;
					case 164:
						{ return symbol(sym.Variable,yytext()); }
					case -156:
						break;
					case 165:
						{ return symbol(sym.Variable,yytext()); }
					case -157:
						break;
					case 166:
						{ return symbol(sym.Variable,yytext()); }
					case -158:
						break;
					case 167:
						{ return symbol(sym.Variable,yytext()); }
					case -159:
						break;
					case 168:
						{ return symbol(sym.Variable,yytext()); }
					case -160:
						break;
					case 169:
						{ return symbol(sym.Variable,yytext()); }
					case -161:
						break;
					case 170:
						{ return symbol(sym.Variable,yytext()); }
					case -162:
						break;
					case 171:
						{ return symbol(sym.Variable,yytext()); }
					case -163:
						break;
					case 172:
						{ return symbol(sym.Variable,yytext()); }
					case -164:
						break;
					case 173:
						{ return symbol(sym.Variable,yytext()); }
					case -165:
						break;
					case 174:
						{ return symbol(sym.Variable,yytext()); }
					case -166:
						break;
					case 175:
						{ return symbol(sym.Variable,yytext()); }
					case -167:
						break;
					case 176:
						{ return symbol(sym.Variable,yytext()); }
					case -168:
						break;
					case 177:
						{ return symbol(sym.Variable,yytext()); }
					case -169:
						break;
					case 178:
						{ return symbol(sym.Variable,yytext()); }
					case -170:
						break;
					case 179:
						{ return symbol(sym.Variable,yytext()); }
					case -171:
						break;
					case 180:
						{ return symbol(sym.Variable,yytext()); }
					case -172:
						break;
					case 181:
						{ return symbol(sym.Variable,yytext()); }
					case -173:
						break;
					case 182:
						{ return symbol(sym.Variable,yytext()); }
					case -174:
						break;
					case 183:
						{ return symbol(sym.Variable,yytext()); }
					case -175:
						break;
					case 184:
						{ return symbol(sym.Variable,yytext()); }
					case -176:
						break;
					case 185:
						{ return symbol(sym.Variable,yytext()); }
					case -177:
						break;
					case 186:
						{ return symbol(sym.Variable,yytext()); }
					case -178:
						break;
					case 187:
						{ return symbol(sym.Variable,yytext()); }
					case -179:
						break;
					case 188:
						{ return symbol(sym.Variable,yytext()); }
					case -180:
						break;
					case 189:
						{ return symbol(sym.Variable,yytext()); }
					case -181:
						break;
					case 190:
						{ return symbol(sym.Variable,yytext()); }
					case -182:
						break;
					case 191:
						{ return symbol(sym.Variable,yytext()); }
					case -183:
						break;
					case 192:
						{ return symbol(sym.Variable,yytext()); }
					case -184:
						break;
					case 193:
						{ return symbol(sym.Variable,yytext()); }
					case -185:
						break;
					case 194:
						{ return symbol(sym.Variable,yytext()); }
					case -186:
						break;
					case 195:
						{ return symbol(sym.Variable,yytext()); }
					case -187:
						break;
					case 196:
						{ return symbol(sym.Variable,yytext()); }
					case -188:
						break;
					case 197:
						{ return symbol(sym.Variable,yytext()); }
					case -189:
						break;
					case 198:
						{ return symbol(sym.Variable,yytext()); }
					case -190:
						break;
					case 199:
						{ return symbol(sym.Variable,yytext()); }
					case -191:
						break;
					case 200:
						{ return symbol(sym.Variable,yytext()); }
					case -192:
						break;
					case 201:
						{ return symbol(sym.Variable,yytext()); }
					case -193:
						break;
					case 202:
						{ return symbol(sym.Variable,yytext()); }
					case -194:
						break;
					case 203:
						{ return symbol(sym.Variable,yytext()); }
					case -195:
						break;
					case 204:
						{ return symbol(sym.Variable,yytext()); }
					case -196:
						break;
					case 205:
						{ return symbol(sym.Variable,yytext()); }
					case -197:
						break;
					case 206:
						{ return symbol(sym.Variable,yytext()); }
					case -198:
						break;
					case 207:
						{ return symbol(sym.Variable,yytext()); }
					case -199:
						break;
					case 208:
						{ return symbol(sym.Variable,yytext()); }
					case -200:
						break;
					case 209:
						{ return symbol(sym.Variable,yytext()); }
					case -201:
						break;
					case 210:
						{ return symbol(sym.Variable,yytext()); }
					case -202:
						break;
					case 211:
						{ return symbol(sym.Variable,yytext()); }
					case -203:
						break;
					case 212:
						{ return symbol(sym.Variable,yytext()); }
					case -204:
						break;
					case 213:
						{ return symbol(sym.Variable,yytext()); }
					case -205:
						break;
					case 214:
						{ return symbol(sym.Variable,yytext()); }
					case -206:
						break;
					case 215:
						{ return symbol(sym.Variable,yytext()); }
					case -207:
						break;
					case 216:
						{ return symbol(sym.Variable,yytext()); }
					case -208:
						break;
					case 217:
						{ return symbol(sym.Variable,yytext()); }
					case -209:
						break;
					case 218:
						{ return symbol(sym.Variable,yytext()); }
					case -210:
						break;
					case 219:
						{ return symbol(sym.Variable,yytext()); }
					case -211:
						break;
					case 220:
						{ return symbol(sym.Variable,yytext()); }
					case -212:
						break;
					case 221:
						{ return symbol(sym.Variable,yytext()); }
					case -213:
						break;
					case 222:
						{ return symbol(sym.Variable,yytext()); }
					case -214:
						break;
					case 223:
						{ return symbol(sym.Variable,yytext()); }
					case -215:
						break;
					default:
						yy_error(YY_E_INTERNAL,false);
					case -1:
					}
					yy_initial = true;
					yy_state = yy_state_dtrans[yy_lexical_state];
					yy_next_state = YY_NO_STATE;
					yy_last_accept_state = YY_NO_STATE;
					yy_mark_start();
					yy_this_accept = yy_acpt[yy_state];
					if (YY_NOT_ACCEPT != yy_this_accept) {
						yy_last_accept_state = yy_state;
						yy_mark_end();
					}
				}
			}
		}
	}
}
